#ifndef CM_CS_H__
#define CM_CS_H__
/******************************************************************************
 Copyright 2024-2025 Qualcomm Technologies International, Ltd.
 All Rights Reserved.
 Qualcomm Technologies International, Ltd. Confidential and Proprietary.

******************************************************************************/

#include "csr_synergy.h"
#include "csr_bt_cm_main.h"
#include "csr_bt_config.h"

#ifdef __cplusplus
extern "C" {
#endif

#ifdef INSTALL_CHANNEL_SOUNDING_SUPPORT

void CmCsLeInitReqHandler(cmInstanceData_t *cmData);
void CmCsLeInitCfmHandler(cmInstanceData_t *cmData);

void CmCsLeReadLocalSupportedCapabilitiesReqHandler(cmInstanceData_t *cmData);
void CmCsLeReadLocalSupportedCapabilitiesCfmHandler(cmInstanceData_t *cmData);

void CmCsLeReadRemoteSupportedCapabilitiesReqHandler(cmInstanceData_t *cmData);
void CmCsLeReadRemoteSupportedCapabilitiesCfmHandler(cmInstanceData_t *cmData);
void CmCsLeReadRemoteSupportedCapabilitiesIndHandler(cmInstanceData_t *cmData);

void CmCsLeWriteCachedRemoteSupportedCapabilitiesReqHandler(cmInstanceData_t *cmData);
void CmCsLeWriteCachedRemoteSupportedCapabilitiesCfmHandler(cmInstanceData_t *cmData);

void CmCsLeSecurityEnableReqHandler(cmInstanceData_t *cmData);
void CmCsLeSecurityEnableCfmHandler(cmInstanceData_t *cmData);
void CmCsLeSecurityEnableIndHandler(cmInstanceData_t *cmData);

void CmCsLeDefaultSettingsReqHandler(cmInstanceData_t *cmData);
void CmCsLeDefaultSettingsCfmHandler(cmInstanceData_t *cmData);

void CmCsLeReadRemoteFAETableReqHandler(cmInstanceData_t *cmData);
void CmCsLeReadRemoteFAETableCfmHandler(cmInstanceData_t *cmData);

void CmCsLeWriteCachedRemoteFAETableReqHandler(cmInstanceData_t *cmData);
void CmCsLeWriteCachedRemoteFAETableCfmHandler(cmInstanceData_t* cmdData);

void CmCsLeCreateConfigReqHandler(cmInstanceData_t *cmData);
void CmCsLeCreateConfigCfmHandler(cmInstanceData_t *cmData);
void CmCsLeCreateConfigIndHandler(cmInstanceData_t *cmData);


void CmCsLeRemoveConfigReqHandler(cmInstanceData_t *cmData);
void CmCsLeRemoveConfigCfmHandler(cmInstanceData_t *cmData);
void CmCsLeRemoveConfigIndHandler(cmInstanceData_t *cmData);

void CmCsLeSetChannelClassificationReqHandler(cmInstanceData_t *cmData);
void CmCsLeSetChannelClassificationCfmHandler(cmInstanceData_t *cmData);

void CmCsLeSetProcedureParametersReqHandler(cmInstanceData_t *cmData);
void CmCsLeSetProcedureParametersCfmHandler(cmInstanceData_t *cmData);

void CmCsLeProcedureEnableReqHandler(cmInstanceData_t *cmData);
void CmCsLeProcedureEnableCfmHandler(cmInstanceData_t *cmData);
void CmCsLeProcedureEnableIndHandler(cmInstanceData_t *cmData);


void CmCsLeSubeventResultIndHandler(cmInstanceData_t *cmData);
void CmCsLeSubeventResultContinueIndHandler(cmInstanceData_t *cmData);

void CmCsLeGenerateTestVectorSubeventReqHandler(cmInstanceData_t *cmData);

#ifdef CSR_STREAMS_ENABLE
void CmCsLeSubeventResultRspHandler(cmInstanceData_t *cmData);
#else /* CSR_STREAMS_ENABLE */
#define CmCsLeSubeventResultRspHandler NULL
#endif /* CSR_STREAMS_ENABLE */

#else /* !INSTALL_CHANNEL_SOUNDING_SUPPORT */

#define CmCsLeInitReqHandler NULL
#define CmCsLeReadLocalSupportedCapabilitiesReqHandler NULL
#define CmCsLeReadRemoteSupportedCapabilitiesReqHandler NULL
#define CmCsLeWriteCachedRemoteSupportedCapabilitiesReqHandler NULL
#define CmCsLeSecurityEnableReqHandler NULL
#define CmCsLeDefaultSettingsReqHandler NULL
#define CmCsLeReadRemoteFAETableReqHandler NULL
#define CmCsLeWriteCachedRemoteFAETableReqHandler NULL
#define CmCsLeCreateConfigReqHandler NULL
#define CmCsLeRemoveConfigReqHandler NULL
#define CmCsLeSetChannelClassificationReqHandler NULL
#define CmCsLeSetProcedureParametersReqHandler NULL
#define CmCsLeProcedureEnableReqHandler NULL
#define CmCsLeGenerateTestVectorSubeventReqHandler NULL
#define CmCsLeSubeventResultRspHandler NULL

#endif /* INSTALL_CHANNEL_SOUNDING_SUPPORT */

#ifdef __cplusplus
}
#endif

#endif /* CM_CS_H__ */
